package com.hrbxlh.dao;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

@Repository
public interface SourceDao {
	
	/**
	 * @param pageNow,pageSize(一般是10)，页数从1开始，第一页pageNow传1
	 * @return  学生成绩列表页面。进页面，翻页，条件查询都是这个。
	 * @throws IOException
	 */
	public List<Map<String, Object>> getAllSourceList(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @description 删除学生成绩的方法，传的是每个学生的id
	 * @param List<Integer> 人员id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delSoruceBystuorteaId(List<Map<String, Object>> paramList) throws Exception;
	
	/**
	 * @description 假删除学生成绩的方法，传的是每个学生的id
	 * @param List<Integer> 人员id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delStuSoruceBystuorteaId(List<String> paramList) throws Exception;
	
	/**
	 * @description 假删除学生成绩的方法，传的是每个学生的id(删除学生)
	 * @param List<Integer> 人员id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delStuSoruceBystuorteaIdStu(List<String> paramList) throws Exception;
	
	/**
	 * @description 添加学生成绩的方法，传的是每个学生的id
	 * @param List<Integer> 人员id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean addSource(List<Map<String, Object>> param) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  某个班级分数最高的学生。
	 * @throws IOException
	 */
	public List<Map<String, Object>> getMaxPreforSource(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  查看exam表是否有数据 。
	 * @throws IOException
	 */
	public List<Map<String, Object>> getExam() throws Exception;
	
	/**
	 * @param paramMap
	 * @return  查看source表中平时成绩的权重
	 * @throws IOException
	 */
	public Map<String, Object> getProWedith(Map<String, Object> paraMap) throws Exception;
	
	/**
	 * 成绩设置。
	 * @throws IOException
	 */
	public boolean addSorceSet(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * 更改成绩设置。
	 * @throws IOException
	 */
	public boolean updateSorceSet(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  查看source表中平时成绩的权重
	 * @throws IOException
	 */
	public Map<String, Object> getExamBySidAndCourseId(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @param pageNow,pageSize(一般是10)，页数从1开始，第一页pageNow传1
	 * @return  学生成绩列表页面（学生）。进页面，翻页，条件查询都是这个。
	 * @throws IOException
	 */
	public List<Map<String, Object>> getStuAllSourceList(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @param 工号
	 * @return  查询改教师下的学生是否已经有成绩
	 * @throws IOException
	 */
	public List<Map<String, Object>> getExamByteaId(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @description 删除某教师的设置成绩
	 * @param Map<String,Object> map Id
	 * @return 
	 * @throws Exception
	 */
	public boolean delSorceSetById(Map<String, Object> param) throws Exception;
	
	/**
	 * 更改成绩设置。（重新计算总成绩）
	 * @throws IOException
	 */
	public boolean updateSorceBySId(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * @param 
	 * @return  查询当前班级当前课程相关学生的平时成绩(参数是班号、课程号)。
	 * @throws IOException
	 */
	public List<Map<String, Object>> getStuSourceList(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * 插入成绩表，将学生考试成绩插入数据库（批阅试题）。
	 * @throws IOException
	 */
	public boolean addExamByMark(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * 编辑成绩表，将学生考试成绩插入数据库（批阅试题）。
	 * @throws IOException
	 */
	public boolean updateSorceBySIdAndMark(Map<String,Object> paramMap) throws Exception;
	
	
	
	


}
